package no.ntnu.fp.client;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

import javax.sound.sampled.ReverbType;

import no.ntnu.fp.messages.Message;
import no.ntnu.fp.model.Appointment;

/**
 * The current logged in user and their variables.
 * @author Stephan
 *
 */
public class Client {
	//List of all messages
	ArrayList<Message> messageList = new ArrayList<Message>();
	//List of all appointments
	ArrayList<Appointment> appointmentList = new ArrayList<Appointment>();
	
	private String currentUser;
	
	
	
	public ArrayList<Message> getMessageList() {
		return messageList;
	}
	public void setMessageList(ArrayList<Message> messageList) {
		this.messageList = messageList;
	}
	public ArrayList<Appointment> getAppointmentList() {
		return appointmentList;
	}
	public void setAppointmentList(ArrayList<Appointment> appointmentList) {
		this.appointmentList = appointmentList;
	}
	public boolean appointmentListAdd(Appointment e) {
		return appointmentList.add(e);
	}
	public void appointmentListAdd(int index, Appointment element) {
		appointmentList.add(index, element);
	}
	public boolean appointmentListAddAll(Collection<? extends Appointment> c) {
		return appointmentList.addAll(c);
	}
	public boolean appointmentListAddAll(int index, Collection<? extends Appointment> c) {
		return appointmentList.addAll(index, c);
	}
	public void appointmentListClear() {
		appointmentList.clear();
	}
	public Object appointmentListClone() {
		return appointmentList.clone();
	}
	public boolean appointmentListContains(Object o) {
		return appointmentList.contains(o);
	}
	public boolean appointmentListContainsAll(Collection<?> c) {
		return appointmentList.containsAll(c);
	}
	public void appointmentListEnsureCapacity(int minCapacity) {
		appointmentList.ensureCapacity(minCapacity);
	}
	public boolean appointmentListEquals(Object o) {
		return appointmentList.equals(o);
	}
	public Appointment appointmentListGet(int index) {
		return appointmentList.get(index);
	}
	public int appointmentListHashCode() {
		return appointmentList.hashCode();
	}
	public int appointmentListIndexOf(Object o) {
		return appointmentList.indexOf(o);
	}
	public boolean appointmentListIsEmpty() {
		return appointmentList.isEmpty();
	}
	public Iterator<Appointment> appointmentListIterator() {
		return appointmentList.iterator();
	}
	public int appointmentListLastIndexOf(Object o) {
		return appointmentList.lastIndexOf(o);
	}
	public ListIterator<Appointment> appointmentListListIterator() {
		return appointmentList.listIterator();
	}
	public ListIterator<Appointment> appointmentListListIterator(int index) {
		return appointmentList.listIterator(index);
	}
	public Appointment appointmentListRemove(int index) {
		return appointmentList.remove(index);
	}
	public boolean appointmentListRemove(Object o) {
		return appointmentList.remove(o);
	}
	public boolean appointmentListRemoveAll(Collection<?> c) {
		return appointmentList.removeAll(c);
	}
	public boolean appointmentListRetainAll(Collection<?> c) {
		return appointmentList.retainAll(c);
	}
	public Appointment appointmentListSet(int index, Appointment element) {
		return appointmentList.set(index, element);
	}
	public int appointmentListSize() {
		return appointmentList.size();
	}
	public List<Appointment> appointmentListSubList(int fromIndex, int toIndex) {
		return appointmentList.subList(fromIndex, toIndex);
	}
	public Object[] appointmentListToArray() {
		return appointmentList.toArray();
	}
	public <T> T[] appointmentListToArray(T[] a) {
		return appointmentList.toArray(a);
	}
	public String appointmentListToString() {
		return appointmentList.toString();
	}
	public void appointmentListTrimToSize() {
		appointmentList.trimToSize();
	}
	public boolean messageListAdd(Message e) {
		return messageList.add(e);
	}
	public void messageListAdd(int index, Message element) {
		messageList.add(index, element);
	}
	public boolean messageListAddAll(Collection<? extends Message> c) {
		return messageList.addAll(c);
	}
	public boolean messageListAddAll(int index, Collection<? extends Message> c) {
		return messageList.addAll(index, c);
	}
	public void messageListClear() {
		messageList.clear();
	}
	public Object messageListClone() {
		return messageList.clone();
	}
	public boolean messageListContains(Object o) {
		return messageList.contains(o);
	}
	public boolean messageListContainsAll(Collection<?> c) {
		return messageList.containsAll(c);
	}
	public void messageListEnsureCapacity(int minCapacity) {
		messageList.ensureCapacity(minCapacity);
	}
	public boolean messageListEquals(Object o) {
		return messageList.equals(o);
	}
	public Message messageGet(int index) {
		return messageList.get(index);
	}
	public int messageListHashCode() {
		return messageList.hashCode();
	}
	public int messageListIndexOf(Object o) {
		return messageList.indexOf(o);
	}
	public boolean messageListIsEmpty() {
		return messageList.isEmpty();
	}
	public Iterator<Message> messageListIterator() {
		return messageList.iterator();
	}
	public int messageListLastIndexOf(Object o) {
		return messageList.lastIndexOf(o);
	}
	public ListIterator<Message> messageListListIterator() {
		return messageList.listIterator();
	}
	public ListIterator<Message> messageListListIterator(int index) {
		return messageList.listIterator(index);
	}
	public Message messageListRemove(int index) {
		return messageList.remove(index);
	}
	public boolean messageListRemove(Object o) {
		return messageList.remove(o);
	}
	public boolean messageListRemoveAll(Collection<?> c) {
		return messageList.removeAll(c);
	}
	public boolean messageListRetainAll(Collection<?> c) {
		return messageList.retainAll(c);
	}
	public Message messageListSet(int index, Message element) {
		return messageList.set(index, element);
	}
	public int messageListSize() {
		return messageList.size();
	}
	public List<Message> messageListSubList(int fromIndex, int toIndex) {
		return messageList.subList(fromIndex, toIndex);
	}
	public Object[] messageListToArray() {
		return messageList.toArray();
	}
	public <T> T[] messageListToArray(T[] a) {
		return messageList.toArray(a);
	}
	public String messageListToString() {
		return messageList.toString();
	}
	public void messageListTrimToSize() {
		messageList.trimToSize();
	}
	
	
	
	

}
